﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Runtime.Serialization;
using KC.Enums.WorkFlow;
using KC.Framework.Base;
using KC.DTO.Core;

namespace KC.Service.DTO.WorkFlow
{
    [Serializable]
    [DataContract(IsReference = true)]
    public class FlowOrigRecordsDto : EntityDTO
    {
        [DataMember]
        public int Id { get; set; }
        [DataMember]
        [Display(Name = "业务数据查看URL")]
        public string DataViewUrl { get; set; }
        [DataMember]
        [Display(Name = "更新业务数据状态URL")]
        public string DataBackUrl { get; set; }
        [DataMember]
        [Display(Name = "流程ID")]
        public int FlowId { get; set; }
        [DataMember]
        [Display(Name = "业务类型")]
        public ErpBusiFlowConfig BusiType { get; set; }
        [DataMember]
        [Display(Name = "业务单表名")]
        public string TableName { get; set; }
        [DataMember]
        [Display(Name = "业务数据名称")]
        public string WorkName { get; set; }
        [DataMember]
        [Display(Name = "业务数据编号")]
        public string WorkCode { get; set; }
        [DataMember]
        [Display(Name = "业务数据ID")]
        public string WorkId { get; set; }
        [DataMember]
        [Display(Name = "发起人ID")]
        public Guid OrigUserId { get; set; }
        [DataMember]
        [Display(Name = "发起人编号")]
        [MaxLength(50)]
        public string OrigUserCode { get; set; }
        [DataMember]
        [Display(Name = "发起人名称")]
        [MaxLength(50)]
        public string OrigUserName { get; set; }
        public List<FlowResultsDto> ResultsDtos { get; set; }
        public ErpFlowConfigs FlowConfigs { get; set; }

        public ProcessingState ProcessingState { get; set; }

        public string ProcessingStateString { get; set; }

        public virtual List<FlowCurStepUsersDto> FlowCurStepUsers { get; set; }
    }
}
